iT邦幫忙

2021 iThome 鐵人賽

DAY 8
1

前言

之前使用官方範例後,再轉到實際環境,發現仍有不同,於是再看看資料吧!


觀察歷史資料

廢話不多說,直接使用:

ticks = api.ticks(contract=api.Contracts.Stocks["2330"], date="2021-09-22")
print(ticks)

df = pd.DataFrame({**ticks})
df.ts = pd.to_datetime(df.ts)
print(df.head())
print(df.tail())

發現資料超多,與他們範例不太一樣,光是前面幾個狀態,就超多筆,無法用肉眼觀察,所以就用他們的範例,也就是轉乘為Dataframe,轉化後就不但好閱讀,也清楚的看出來資料長什麼樣子。就會從原本的:

588.0, 588.0, 588.0, 588.0, 588.0, 588.0,....

變成整齊的:

   close  ask_price  ask_volume  bid_volume  bid_price                         ts  volume
0  586.0      587.0         122         111      586.0 2021-09-22 09:00:05.091164    4251
1  586.0      587.0         122         111      586.0 2021-09-22 09:00:05.164357       2
2  587.0      587.0         122         111      586.0 2021-09-22 09:00:05.170070       8
3  586.0      587.0         122         111      586.0 2021-09-22 09:00:05.206461       5
4  586.0      587.0         122         111      586.0 2021-09-22 09:00:05.215926       2

可以看得出來,這邊的資料,應該是屬於tick等級,所以像台積電這個交易量很多的熱門股,會有很多成交資訊,用len()看後發現有12032...

不過變成DataFrame才是處理資料的正解!

最後一筆資料:1430

不過看最後一筆資料,需要注意,他的交易時間為14:30,看起來是盤後零股,但是他的數量應該為「51,293」股,共「1,316」筆,感覺很奇怪,暫時找不到是啥,如果有找到再補上。不過這筆資料在研究的時候需要移除!

                              ts  bid_volume  volume  close  ask_volume  bid_price  ask_price
12027 2021-09-22 13:24:59.925825         317       1  586.0          26      586.0      587.0
12028 2021-09-22 13:24:59.956300         317       1  586.0          26      586.0      587.0
12029 2021-09-22 13:24:59.985980         313       1  586.0          26      586.0      587.0
12030 2021-09-22 13:30:00.000000         239    2961  586.0          73      586.0      587.0
12031 2021-09-22 14:30:00.000000         239      63  586.0          73      586.0      587.0

後記

歷史資料還可以抓時間,還有k線。這幾個就是接下來的學習題目~


上一篇
【D7】試用廚具:歷史資料(Historical Market Data)
下一篇
【D9】廚具熟練後製作精緻:使用歷史資料的Kbar做MA(移動平均線)圖
系列文
永豐證API X Python31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言